Expert systems are known in the art to provide a means of making knowledge available to an expert system user by assisting in the analysis of a problem. An expert system is a computer program that imitates the behavior of a human expert. It uses information that the end user supplies to render an opinion on a subject based on the knowledge contained in its knowledge base.
Typically an expert system employs an inference engine to apply the knowledge of its knowledge base to the information supplied by the user. In this way the problem at hand is analyzed and a solution is recommended. This process often takes the form of a series of questions which the expert system asks and the user answers. The series of questions employed depends upon the user's answer to each question in the series.
When a user employs an expert system to solve a problem, a conclusion is derived by applying the facts and rules in the knowledge base to the information supplied by the user. In this sense, the expert system serves as an expert on a given subject to help a non-expert user derive a solution to the problem.
To construct an expert system one must put the relevant knowledge in a form which the expert system, and specifically the inference engine, may use. This usually involves transforming the knowledge about a specific subject into the form of facts and rules and storing the knowledge in the form of a computer data base. Presently, this involves a knowledge of artificial intelligence principles and programming skills such as those possessed by programmers using artificial intelligence specific languages like LISP or Prolog.
The construction of such an expert system usually involves the coding of appropriate prompts to the user to request and gather information. The task also involves adhering to the detailed syntax of the given artificial intelligence language to produce a compilable source. Unfortunately, the knowledge which one may wish to store as a knowledge base is not the exclusive domain of those with formal training in such programming skills. Even an expert in such languages frequently fails to produce and error free version of the code on first compilation.
Further once such systems are created, knowledge about the topic of the knowledge base may change. This requires that the knowledge base be updated. The individual who coded the expert system may not be immediately aware of such changes in the relevant field of expertise. This may cause some delay while experts in the field communicate their new information to the artificial intelligence programmer who will then code this new information in the knowledge base.